home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MPEG Toolkit
/
MPEG Toolkit.iso
/
os2
/
pmmpg21a
/
pmmpeg.hlp
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1997-01-01
|
53KB
|
1,148 lines
ΓòÉΓòÉΓòÉ 1. Summary of New Features ΓòÉΓòÉΓòÉ
I received a great deal of quality feedback from dozens of people that tried
previous releases of PMMPEG. Here is a summary of new features that have been
implemented based on your suggestions. Please continue to send suggestions and
bug reports, it will help to make PMMPEG better for everyone.
Click on the links below to get more information on each feature.
New Features in PMMPEG 2.1:
o Optimized playback speed with I/B/P movies. They play at much higher frame
rates and as a side effect the bug with stepping frame by frame in I/B/P
movies has been corrected.
o Added Slideshow feature. This allows you to select multiple files with the
File Dialog, drag/drop multiple files from somewhere on the desktop or
specify multiple files on the command line. PMMPEG will then play each
movie, one after the other, and optionally loop back to the front of the list
and play again if the Loop mode is set.
o Added Toolbar buttons that allow you to save the current frame to the
Clipboard or to an OS/2 Bitmap file
o The Statistics dialog has been replaced by a Status bar that can be
optionally displayed at the bottom of the frame. This shows the relevant
statistics for the movie: resolution, frame count (for I/B/P and displayed
frames) and frame rate in frames/second.
o If a decoding problem occurs on a particular frame, the status bar will
optionally be displayed with a red background for that frame.
o A pop up message will be displayed if the current display configuration is
not set up for at least 256 colors This is required for proper display of the
images.
o Added WS_ANIMATE bit to respect system window animation option.
o Update MPEG movie site information.
o Added MPEG-2 decoder discussion to help file.
o Added DIVE discussion/problems to help file.
o Tested increasing color dithering space up from 128 colors but there was not
much visual difference and performance suffered.
o Optimization: Check and don't change a button if it's already in the required
state.
o Optimization: Quickly skip initial frames until a non-all-black frame is
found. This will always display the first valid frame of any movie.
o Optimization: Better frame/second calculation, still mildly optimistic.
o Bug fix: Leaves movie positioned at last frame when it ends.
o Bug fix: Only one error message on improper end sequence, stops gracefully.
o Bug fix: Gets focus on startup as it should.
o Bug fix: Fixed memory leaks and optimized internal table use.
o Internal: Cleaned up compiler warnings in source, removed dead code.
o Internal: Removed frame size calculation hack.
New Features in PMMPEG 2.0:
o Toolbar with tape controls (Play/Stop/Rewind/Step/Size/Color/Loop)
o Accept MPEG filename on command line and automatically play it.
o Command line options for playback size, color and looping.
o Configuration data saved between runs.
o INSTALL.CMD will create a PMMPEG desktop object
o INSTALL.CMD will associate PMMPEG with all *.MPG files
o Drag/Drop MPEG movie onto PMMPEG.
o Double size playback is possible both in Color and Grayscale.
o Loading a movie decodes and displays the first valid frame.
o When the window is obscured and then revealed, the movie frame is repainted.
o New MPEG movie sites added and corrections made to list.
o File Dialog always brings up *.MPG.
o MPEG filename is now displayed in the Title bar.
o Bug fix: no more silent death problem. PMMPEG jumps to the next frame when
bad encoding detected.
o Bug fix: The file handle is closed when a movie fails parsing as non-MPEG
format
o Bug fix: Popups are now displayed on fatal read/MPEG stream/parsing errors.
ΓòÉΓòÉΓòÉ 2. Suggestions for Future Releases ΓòÉΓòÉΓòÉ
Here is the list of features I was not able to add in time for this release.
If you have any more features you'd like to see, please send them to me.
I can't promise to eventually implement them all, due to constraints like time,
Berkeley decoding engine limitations, etc., but I'll do my best.
The list is in a rough order of what I think I'll concentrate on.
o I'm considering putting in some nagware or limited functionality due to the
amazingly low registration rate vs. the number of copies downloaded.
o Implement DIVE interface and overcome color dithering issues.
o Save all frames of movie as bitmaps with unique names with a single click.
o Move bottom of window when status bar is toggled, instead of top.
o Ensure window stays completely on desktop when toggling status or size
buttons.
o Save bitmaps as RLE, optional as some apps don't like RLE encoding.
o Add VideoIN issues to help file.
o Add pop-up menus.
o Allow color to be dropped on the client background.
o Allow priority adjustment.
o Display any interesting info from the MPEG header.
o REXX hooks for external control of behavior.
o Optimize decoding/dithering to improve frame rate.
o Overlap display/decode of frames to speed throughput.
o Frame back (I frame only).
o Play at encoded speed, some movies go too fast.
o Better color/256 colors/palette manager.
o Scroll bar back and forth across frames.
o Pre-parse file and then play back frames.
o Bar graph timeline.
o Full screen option.
o Audio sync.
o Make into MMPM/2 codec.
o More dithering options.
ΓòÉΓòÉΓòÉ 3. Toolbar ΓòÉΓòÉΓòÉ
Use the buttons on the toolbar to control the playback of the movie and select
playback options.
The buttons on the toolbar have the following functions:
o The Play Button causes the movie to start playing.
o The Stop Button causes the movie to stop playing.
o The Rewind Button causes the movie to be rewound to the first frame, ready
for a subsequent Play or Step.
o The Step Button button causes the next frame of the movie to be displayed.
o The Clipboard Button causes the image of the currently displayed frame to be
copied to the OS/2 clipboard.
o The File Button causes the image of the currently displayed frame to be saved
to an OS/2 bitmap file on disk.
The following buttons are in one of two states.
o The Small/Large Button can be either in Small or Large mode.
- When in the Small state, the movie is played in its normal size, as
encoded in the file.
- When in the Large state, the movie is played at double the size encoded in
the file.
o The Color/Gray Button can be either in Color or Grayscale mode.
- When in the Color state, the movie is played in 128 distinct color shades.
- When in the Gray state, the movie is played in 128 shades of gray.
o The NoLoop/Loop Button button can be either in NoLoop or Loop mode.
- When in the NoLoop state, the movie is played once and then halts at the
end.
- When in the Loop state, the movie is played over and over until you click
on the Stop button or drag and drop a new movie onto the window.
ΓòÉΓòÉΓòÉ 3.1. Play Button ΓòÉΓòÉΓòÉ
The Play button causes the movie to start playing. When the movie starts
playing, the Stop button will be enabled and the Rewind and Step buttons will
be disabled.
o If there is no movie loaded, the button will be in this grayed out state:
o If there is a movie loaded and it's not currently playing, the button will be
in this enabled state:
o If there is a movie loaded and it is currently playing, the button will be in
this grayed out state:
ΓòÉΓòÉΓòÉ 3.2. Stop Button ΓòÉΓòÉΓòÉ
The Stop button causes the movie to stop playing. When the movie stops
playing, the Play, Rewind and Step buttons will be enabled.
o If there is no movie loaded, the button will be in this grayed out state:
o If there is a movie loaded and it's not currently playing, the button will be
in this grayed out state:
o If there is a movie loaded and it is currently playing, the button will be in
this enabled state:
ΓòÉΓòÉΓòÉ 3.3. Rewind Button ΓòÉΓòÉΓòÉ
The Rewind button causes the movie to be rewound to the first frame, ready for
a subsequent Play or Step.
o If there is no movie loaded, the button will be in this grayed out state:
o If there is a movie loaded and it's not currently playing, the button will be
in this enabled state:
o If there is a movie loaded and it is currently playing, the button will be in
this grayed out state:
ΓòÉΓòÉΓòÉ 3.4. Step Button ΓòÉΓòÉΓòÉ
The Step button causes the next frame of the movie to be displayed. If the end
of the movie is encountered, it will be rewound to the first frame and stepping
can continue without reloading the movie.
There is a known problem when using Step with IBP-Frame Movies
o If there is no movie loaded, the button will be in this grayed out state:
o If there is a movie loaded and it's not currently playing, the button will be
in this enabled state:
o If there is a movie loaded and it is currently playing, the button will be in
this grayed out state:
ΓòÉΓòÉΓòÉ 3.5. Small/Large Button ΓòÉΓòÉΓòÉ
The Small/Large button toggles back and forth between playback at the normal
movie size, as encoded in the file, or at double that size.
This button defaults to Small, but can be changed by options on the command
line or the configuration data in force when this program was last shut down.
Note: You can toggle this while the movie is running and the display will
resize itself to ensure that the full movie image is visible.
You will see dramatically lower frame rates when playing the movie in Large
mode due to the quadrupled number of pixels that have to be moved around in
memory and displayed in the window. In Large mode, the movie will appear very
"chunky" because each pixel is being magnified 4 times. There's no way to
extract a better image out of the movie than its natural encoded size.
o When in the Small state , the movie is played in its normal size, as encoded
in the file.
o When in the Large state, , the movie is played at double the size encoded in
the file.
ΓòÉΓòÉΓòÉ 3.6. Color/Gray Button ΓòÉΓòÉΓòÉ
The Color/Gray button toggles back and forth between 128 color playback and 128
shades-of-gray playback.
This button defaults to Color, but can be changed by options on the command
line or the configuration data in force when this program was last shut down.
You will usually see slightly better frame rates with Gray than with Color due
to the simpler dithering calculations. Also, some movies have "garish" color
and selecting gray scale will make them more pleasing to the eye.
There is a problem with the Color Table when switching from color->gray or
gray->color during playback.
Note: You can toggle this while the movie is running and the display will
change to the desired color scheme.
o When in the Color state , the movie is played in 128 shades of color.
o When in the Grayscale state , the movie is played in 128 shades of gray.
ΓòÉΓòÉΓòÉ 3.7. NoLoop/Loop Button ΓòÉΓòÉΓòÉ
The NoLoop/Loop button toggles back and forth between playing the movie and
looping around to the start and playing again or playing the movie and stopping
at the end.
This button defaults to NoLoop, but can be changed by options on the command
line or the configuration data in force when this program was last shut down.
Note: You can toggle this while the movie is running and the movie will behave
accordingly when it hits the last frame.
o When in the NoLoop state , the movie stops when it hits the last frame.
o When in the Loop state , the movie loops around to the start and continues
playing when it hits the last frame.
ΓòÉΓòÉΓòÉ 4. File ΓòÉΓòÉΓòÉ
Use File to open an MPEG movie.
ΓòÉΓòÉΓòÉ 4.1. Open ΓòÉΓòÉΓòÉ
Use Open to display a window that enables you to choose one or more MPEG
movies.
You can also drag and drop one or more movies from a folder onto the PMMPEG
window.
ΓòÉΓòÉΓòÉ 5. Configuration Data ΓòÉΓòÉΓòÉ
PMMPEG stores information about itself when you quit so it can try to give you
the same environment the next time you run it.
o Window position on the desktop is saved and restored, even if maximized or
minimized.
o Window size is saved and restored.
o Small/Large state is saved and restored.
o Color/Gray state is saved and restored.
o NoLoop/Loop state is saved and restored.
o The last directory path a movie is loaded from is saved and restored.
If you simply launch PMMPEG without any command line options, these values will
be loaded and used to set up the player just like it was when you quit it last.
You can use command line options which will override these saved values.
ΓòÉΓòÉΓòÉ 6. Command Line Options ΓòÉΓòÉΓòÉ
PMMPEG has been enhanced to take a number of options on the command line,
allowing its use as an object on the desktop or as part of a program like
Mosaic which attempts to pass the filename of an MPEG movie on the command
line.
These are the recognized command line options:
o -color Color playback, default.
o -gray Grayscale playback.
o -small Normal frame size, default.
o -large Double frame size.
o -noloop One play playback, default.
o -loop Looping playback.
o filename(s) Filename(s) of movies to load and play.
If one or more filenames are given on the command line, either by explicitly
listing multiple filenames or using a wildcard pattern with * or ?, they will
be loaded and play started automatically.
Note that the -color and -gray are mutually exclusive, as are -small and -large
and also -noloop and -loop.
If both of any of these pairs is listed on the command line, the one closest to
the end of the command line will take precedence.
If any of these options are specified, they will take precedence over the
information saved from the last time. Therefore, if you want to be sure that
you get a particular option, it's better to explicitly mention it on the
command line.
ΓòÉΓòÉΓòÉ 6.1. -color option ΓòÉΓòÉΓòÉ
The -color option causes PMMPEG to start up in 128 color mode.
ΓòÉΓòÉΓòÉ 6.2. -gray option ΓòÉΓòÉΓòÉ
The -gray option causes PMMPEG to start up in 128 shades of gray mode.
ΓòÉΓòÉΓòÉ 6.3. -small option ΓòÉΓòÉΓòÉ
The -small option causes PMMPEG to start up normal size playback mode.
ΓòÉΓòÉΓòÉ 6.4. -large option ΓòÉΓòÉΓòÉ
The -large option causes PMMPEG to start up in double size playback mode.
ΓòÉΓòÉΓòÉ 6.5. -noloop option ΓòÉΓòÉΓòÉ
The -noloop option causes PMMPEG to start up in play-once-and-stop mode.
ΓòÉΓòÉΓòÉ 6.6. -loop option ΓòÉΓòÉΓòÉ
The -loop option causes PMMPEG to start up in continuous loop mode.
ΓòÉΓòÉΓòÉ 6.7. filename option ΓòÉΓòÉΓòÉ
The filename option causes PMMPEG to load and start playing that MPEG movie
automatically.
ΓòÉΓòÉΓòÉ 7. Installation ΓòÉΓòÉΓòÉ
PMMPEG can simply be run in any of the following manners:
o On the command line, type pmmpeg with any desired options or MPEG filenames.
o Double-click on the PMMPEG object on your desktop.
o Double-click on any .MPG files in any folder.
The second and third options are enabled for you if you run the INSTALL.CMD
REXX program supplied with PMMPEG.
ΓòÉΓòÉΓòÉ 7.1. INSTALL.CMD ΓòÉΓòÉΓòÉ
INSTALL.CMD is a REXX program that will create a PMMPEG desktop object for you
and set up an association. for any files that end in .MPG.
First make sure PMMPEG.EXE and INSTALL.CMD are located in the directory where
you are going to keep PMMPEG.EXE. Then type INSTALL at the command line. It
will create a desktop object and make the association with all .MPG files on
your system.
ΓòÉΓòÉΓòÉ 7.2. PMMPEG Desktop Object ΓòÉΓòÉΓòÉ
To get this feature, run the INSTALL.CMD REXX program. This will make a PMMPEG
object on your desktop that looks like this:
If you double-click on this object, it will launch PMMPEG. You can add any of
the command line options you like to the Parameters: field of the Program page
of its Settings notebook.
ΓòÉΓòÉΓòÉ 7.3. .MPG Movie Association ΓòÉΓòÉΓòÉ
To get this feature, run the INSTALL.CMD REXX program. This will associate
PMMPEG with all files ending in .MPG on your system and change their icon to
the PMMPEG icon:
When you double-click on an MPEG movie, it will launch PMMPEG and automatically
start playing the selected movie.
ΓòÉΓòÉΓòÉ 8. Drag and Drop MPEG Movies ΓòÉΓòÉΓòÉ
PMMPEG has been designed to allow dragging one or more MPEG movies from a
folder on the desktop to the PMMPEG window.
If you attempt to drop a non-MPEG movie (i.e. not ending in .MPG) the drop will
be rejected.
If there is no movie currently playing, then when you drop an MPEG movie it
will be automatically loaded and start playing.
If there is a movie currently playing, then that movie will stop and the new
movie will be automatically loaded and start playing.
If there is a movie currently playing, and you attempt to drop a non-MPEG movie
then the movie will stop playing. You then have to click on the Play button to
continue playing the current movie.
ΓòÉΓòÉΓòÉ 9. Options ΓòÉΓòÉΓòÉ
Use Options to show a Status bar with relevant movie statistics or get to the
standard sections of the Online Help.
ΓòÉΓòÉΓòÉ 9.1. Status ΓòÉΓòÉΓòÉ
Use Status to enable the Status bar at the bottom of the frame window. This
will display the size in pixels and real-time statistics on the number of
frames processed (for each of the I, B and P frame types), the number of frames
truly displayed (shown in the D: field ) and the running frames/second value.
Click on the Status menu item again to remove the Status bar. The window will
resize itself to accommodate the size of the status bar.
The status bar can optionally display an indication of frames with some kind of
decoding problem
ΓòÉΓòÉΓòÉ 9.2. Note Decoding Errors ΓòÉΓòÉΓòÉ
Use Note Decoding Errors to enable the Status bar at the bottom of the frame
window to show which frames of the movie have some kind of decoding problem
Each frame that has a decoding error will cause the Status bar to have a red
background, which changes back to a gray background on the next correct frame.
Click on the Note Decoding Errors menu item again to remove this feature.
ΓòÉΓòÉΓòÉ <hidden> Open ΓòÉΓòÉΓòÉ
Use Open to select one or more MPEG movies:
1. Select the down arrow to the right of the Drive list to display all the
drives on your system.
2. Select a drive from the Drive list.
3. Select a directory from the Directory list.
4. Select one or more file names from the File list or type in a filename.
5. Select the Open pushbutton to play the movies you want to view.
For a detailed explanation of each field, select from the list below:
o Open file name
o Type of file
o Drive
o File
o Directory
o Open
o Cancel
ΓòÉΓòÉΓòÉ 10. Keys PMMPEG ΓòÉΓòÉΓòÉ
There is no key specific PMMPEG help.
ΓòÉΓòÉΓòÉ <hidden> Open Filename ΓòÉΓòÉΓòÉ
Type the name of the movie you want to open in the Open filename field. If you
include a wildcard character such as * or ?, the file list will be restricted
to those filenames that match the pattern. Click on one or more filenames in
the list and select the Open pushbutton.
ΓòÉΓòÉΓòÉ <hidden> Type of File ΓòÉΓòÉΓòÉ
Select the down arrow to the right of the Type of file field to display the
available file types.
ΓòÉΓòÉΓòÉ <hidden> Drive ΓòÉΓòÉΓòÉ
The Drive list displays the drives on your system. Select the drive that
contains the files you want to view.
ΓòÉΓòÉΓòÉ <hidden> File ΓòÉΓòÉΓòÉ
The File list displays all the files that match the current pattern in the Open
Filename field. Select one or more files you want to open by clicking with the
mouse. Clicking on a selected filename will remove it from the list of
selected files.
ΓòÉΓòÉΓòÉ <hidden> Directory ΓòÉΓòÉΓòÉ
The Directory list displays the directories on the selected drive. Select a
directory to display the list of files from that directory in the File list
box.
ΓòÉΓòÉΓòÉ <hidden> Open ΓòÉΓòÉΓòÉ
Select Open to accept all information in the window, remove the window from the
screen and view the movie.
ΓòÉΓòÉΓòÉ <hidden> Cancel ΓòÉΓòÉΓòÉ
Select Cancel to remove the window from the screen without viewing a movie.
ΓòÉΓòÉΓòÉ 11. PMMPEG ΓòÉΓòÉΓòÉ
Use PMMPEG to display digital movies conforming to the MPEG-1 specification.
PMMPEG can handle both I-Frame only movies and IBP-Frame movies. It cannot
currently handle MPEG movies with embedded sounds, MPEG 1 Stream files or
MPEG-2 files.
Related Information:
o Command Line Options
o Installation
o Desktop Object
o MPEG File Association
o Toolbar
o Status Bar
o Slideshow
o Saving Individual Frames
o Drag/Drop
o 256 Colors
o Summary of New Features
o Suggestions for Future Releases
o MPEG File Info
o MPEG-2 Info
o DIVE Interface Information
o Origin of the Code
o Movie Sites
o Known Bugs
o Credits
o Author Contact
o Registration
ΓòÉΓòÉΓòÉ 12. MPEG File Info ΓòÉΓòÉΓòÉ
This program implements the standard described in the Committee Draft ISO/IEC
CD 11172 dated December 6, 1991 which is sometimes refered to as "Paris
Format."
The player expects MPEG-1 video streams only. It can not handle multiplexed
MPEG streams or video+audio streams. The player uses the paris entropy coding
table set (which we believe to be the MPEG-1 standard), but can not handle any
bitstreams that use the "berlin" entropy coding table set. Berlin data is
relatively rare so there shouldn't be too much to worry about here, but be
aware of the difference when looking for streams to play.
XING is a popular DOS/Windows-based MPEG encoder/player that does not take
advantage of P or B frames (ie, frames with motion compensation). Performance
of the player on XING data is significantly slower (half or less) than the
performance when motion compensated MPEG data is decoded.
ΓòÉΓòÉΓòÉ 13. MPEG-2 Info ΓòÉΓòÉΓòÉ
There is a new version of MPEG on the block, MPEG-2, otherwise known as ISO/IEC
DIS 13818-2. I have experimented with the sample MPEG-2 decoder and found that
the visual quality is lacking on MPEG-1 movies that work well with the Berkeley
decoding engine. Moving up to an MPEG-2 decoding engine will allow more movies
to be played, but at the expense of a clear image on the movies we all know and
love. As most movies are still MPEG-1 at this time, I have decided to stick
with the Berkeley engine and revisit the MPEG-2 engine at a future date.
Here is some information on MPEG-2 from the README file of the MPEG-2 source
code package for an encoder and decoder from the MPEG Software Simulation
Group. The code can be obtained from ftp.netcom.com in the /pub/cfogg/mpeg2
directory. They maintain a listserver for their code. Email to
listserv@netcom.com with message text: subscribe mpeg-users [your E-mail
address]
MPEG-2 Video is a generic method for compressed representation of video
sequences using a common coding syntax defined in the document ISO/IEC 13818
Part 2 (CD: Nov. 1993, DIS: March 1994) by the International Organization for
Standardization (ISO) and the International Electrotechnical Commission (IEC),
in collaboration with the International Telecommunications Union (ITU) as
Recommendation H.262. The MPEG-2 concept is similar to MPEG-1, but includes
extensions to cover a wider range of applications.
The primary application targeted during the MPEG-2 definition process was the
all-digital transmission of broadcast TV quality video at coded bitrates
between 4 and 9 Mbit/sec. However, the MPEG-2 syntax has been found to be
efficient for other applications such as those at higher bit rates and sample
rates (e.g. HDTV). The most significant enhancement over MPEG-1 is the addition
of syntax for efficient coding of interlaced video (e.g. 16x8 block size motion
compensation, Dual Prime, et al). Several other more subtle enhancements (e.g.
10-bit DCT DC precision, non-linear quantization, VLC tables, improved mismatch
control) are included which have a noticeable improvement on coding efficiency,
even for progressive video.
Other key features of MPEG-2 are the scalable extensions which permit the
division of a continuous video signal into two or more coded bit streams
representing the video at different resolutions, picture quality (i.e. SNR), or
picture rates.
ΓòÉΓòÉΓòÉ 14. DIVE Interface Information ΓòÉΓòÉΓòÉ
Most newer OS/2 display drivers allow for a technique called DIVE, or Direct
Interface Video Extensions. DIVE allows applications to have direct access to
the video RAM in the machine. This interface was provided to allow for
applications such as the Digital Video player in MMPM/2, and PMMPEG, to
directly write images into video RAM. This bypasses the slower but more PM-ish
way of bitblitting bitmaps down through the Gpi layer, the Graphics Engine
layer and the presentation driver layer to the hardware.
IBM has provided sample code to allow applications to use this technique and I
incorporated them the same day they were posted on Compuserve. Unfortunately, I
have decided against using DIVE in this release of PMMPEG for the following
reasons:
o DIVE forces you to write the color index of the palette currently loaded in
the hardware. I got this working for grayscale but in color mode the colors
were way off and I couldn't figure out why. I believe the Berkeley engine is
having a hard time dithering to the table of color indexes I set up, but
since this doesn't work it's a major reason not to include it.
o DIVE does not handle expansion of an image so I would have to double the
image by hand in my code, or lose that feature.
o Due to the length of time it takes to decode and dither each frame in the
movie as compared to the short amount of time it takes to actually get PM to
display the frame, I was only seeing 0.5 to 1 frame per second improvement. I
need to make serious increases in decoding and dithering performance before
DIVE will make a serious difference in the overall frame rate.
o DIVE completely writes over whatever is on the screen at that place. This is
a problem when you try to pull down the Options menu - DIVE overwrites the
menu with the frames as they're decoded and you can't tell what you're
selecting from the menu.
o You have to have a graphics device driver that has been written to tolerate
DIVE and you have to have the SMVDD.SYS driver from MMPM/2 in your CONFIG.SYS
for DIVE from an application to work. Most newer drivers will work, but some
may not.
I will continue to experiment with DIVE and when I solve the color problem,
I'll add it in for those that can take advantage of its marginal improvement in
frame rate.
ΓòÉΓòÉΓòÉ 15. Origin of the Code ΓòÉΓòÉΓòÉ
o Computer Science Division-EECS, Univ. of Calif. at Berkeley. Lawrence A.
Rowe, Ketan Patel, and Brian Smith wrote a Unix and X Windows-based MPEG
decoder and viewer. This program is based on their version 2.0 release.
To get the original source, ftp to toe.cs.berkeley.edu, directory
/pub/multimedia/mpeg/mpeg-2.0.tar.Z.
These folks have set up several mailing lists for their code.
- mpeg-list-dist@CS.Berkeley.EDU
General information on the decoder for everyone interested should be
sent to this list. This should become active after 11/20/92
- mpeg-list-request@CS.Berkeley.EDU
Requests to join or leave the list should be sent to this address. The
subject line should contain the single word ADD or DELETE.
- mpeg-bugs@CS.Berkeley.EDU
Problems, questions, or patches should be sent to this address.
o Tom Lane of the Independent JPEG Group provided the basic inverse DCT code
used by the Berkeley player. (tom_lane@g.gp.cs.cmu.edu)
o John Webb contributed the frame subclass code for the status bar and provided
invaluable help when things wouldn't work right.
o I, Mike Brown, ported the Unix/X code to OS/2 and Presenation Manager and
"integerized" the heavy floating point in the inverse DCT routine.
Click to see the Berkley Disclaimer
ΓòÉΓòÉΓòÉ 16. Berkeley Disclaimer ΓòÉΓòÉΓòÉ
/*
* Copyright (c) 1992 The Regents of the University of California.
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose, without fee, and without written agreement is
* hereby granted, provided that the above copyright notice and the following
* two paragraphs appear in all copies of this software.
*
* IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
* CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
*/
ΓòÉΓòÉΓòÉ 17. Movie Sites ΓòÉΓòÉΓòÉ
You can get MPEG movies from computers around the world. The well-known ones I
have found are:
o emx.cc.utexas.edu /pub/mnt/mpeg
o s2k-ftp.cs.berkeley.edu /pub/multimedia/mpeg/movies
o havefun.stanford.edu /pub/mpeg
o phoenix.oulu.fi /pub/mpeg
o calypso-2.oit.unc.edu /pub/multimedia/animation/mpeg
o seds.lpl.arizona.edu /pub/anim
o venice.tcp.com /pub/anime-manga/anim/mpeg
o alt.binaries.multimedia Internet / Usenet newsgroup
ΓòÉΓòÉΓòÉ 18. Known Bugs ΓòÉΓòÉΓòÉ
These bugs are known and are on the list of things to fix in the next release.
o Color Table
o Bad Encodings
o Playback Speed
o OS/2 for SMP
o Icon Problem
ΓòÉΓòÉΓòÉ 18.1. Color Table Problem ΓòÉΓòÉΓòÉ
When switching from color to gray or gray to color while an I-Frame-only movie
is playing, you will see a 1 frame distortion of colors. This is a restriction
on the way the color table is handled and the proper display of the image will
pick up after the color table change completely makes its way through the
application. On IBP-Frame movies, it can take a few frames for the image to
correct itself, generally until an I frame is encountered.
ΓòÉΓòÉΓòÉ 18.2. Bad Encodings ΓòÉΓòÉΓòÉ
Some movies have encoding problems. PMMPEG tries to handle these as best as
possible (for example skipping corrupted frames) and continue playing the
movie. There are a few distinct cases that will cause the following behaviours
in PMMPEG:
o PMMPEG may crash either at the initial load of the movie or at some point
during playback.
o Two movies I have found will get to a certain point in the movie and then
rapidly flip back and forth between two adjacent frames and never terminate.
o Two movies I have found seem to have a problem with the "vertical hold" as
the display looks like a series of jagged diagonal lines.
I will work to bulletproof the code, but it also depends on the Berkeley folks
to release bug fixes to their engine that will help all platforms.
ΓòÉΓòÉΓòÉ 18.3. Playback Speed ΓòÉΓòÉΓòÉ
Movie playback is not real-time. Faster CPU and video cards will help to
improve the situation and internal optimization is ongoing. Use grayscale to
get the fastest playback, at the expense of losing color.
ΓòÉΓòÉΓòÉ 18.4. OS/2 for SMP ΓòÉΓòÉΓòÉ
PMMPEG seems to work well on a beta level of OS/2 for SMP, the version of OS/2
that can run on certain machines that have multiple 486 or Pentium processors.
I've seen it randomly crash with a Divide by Zero error. I don't know if it's
a bug in the OS/2 product since it was at beta level or in my code. When I get
the chance to debug it on a GA level of OS/2 for SMP, I'll try to track this
down.
ΓòÉΓòÉΓòÉ 18.5. Icon Problem ΓòÉΓòÉΓòÉ
Users of certain ATI graphics cards report that the PMMPEG icon is not being
displayed properly, instead a generic OS/2 icon is shown. Since this works
properly on other systems including XGA and S3, I suspect it's an ATI driver
problem.
ΓòÉΓòÉΓòÉ 19. Author Contact ΓòÉΓòÉΓòÉ
Author name: Mike Brown
You can reach me in one of the following manners:
o mbrown@sescomp.com (or use the syntax required by your system to send
Internet email).
o
SES Computing, Inc.
13206 Jenner Lane
Austin, TX 78729-7456
I look forward to reports of new movie sites, new feature requests and of
course bug reports.
ΓòÉΓòÉΓòÉ 20. Registration ΓòÉΓòÉΓòÉ
Release 1.0 of PMMPEG was distributed as Freeware because it didn't have all of
the features that I eventually wanted to include, and I also wanted to gauge
the market for such a program. I have decided to distribute Release 2.1 of
PMMPEG as Shareware to recoup some of the development, postage and network
costs associated with distributing it.
The suggested price is $15.00, a bargain at twice the price! If after 30 days
of use you decide that PMMPEG is a useful tool, please print out the
Registration Form and mail it and the registration fee to the address shown on
the form.
I have specifically not disabled any features or put in any "nagging" messages,
but trust you to "do the right thing" to support development of cheap but
useful software in the growing OS/2 environment.
I must add here in the 2.1 Release that I'm very disappointed in the
registration rate vs. the number of downloads I can see from the two Compserve
forums. The program is also at ftp-os2.cdrom.com where I cannot get a count of
the download activity but I suspect it is at least as high as the Compuserve
activity due to the access cost (nothing) and direct connectivity to anyone at
an Internet site. If registrations don't pick up I will be forced to put in
some nagware or limit functionality in the unregistered version. For those of
you out there that have registered, I thank you for your honesty.
As a registered user, you are entitled to a free upgrade to the next release of
PMMPEG. You can receive your upgrade in one of the following manners:
o Through the post office on a 5╨╝" or 3╨╗" floppy disk.
o Through email as a series of UUENCODED email messages.
o By ftp from ftp-os2.cdrom.com.
Be sure to completely fill out the form so I can keep you up to date.
ΓòÉΓòÉΓòÉ 20.1. Registration Form for PMMPEG ΓòÉΓòÉΓòÉ
To print this registration form, click on the Print... button below, make sure
'This Section' is selected and then click on Print.
Send $15 (in a check or money order in U.S. funds drawn on a U.S. bank - sorry
my bank is VERY cranky!) with this completed form to
SES Computing, Inc.
13206 Jenner Lane
Austin Texas 78729-7456
Name ______________________________________________
Address ______________________________________________
State/Province ______________________________________________
Country ______________________________________________
Zip/Postal Code ______________________________________________
Internet/Compuserve ______________________________________________
Where did you get PMMPEG? ________________________________________
How would you like to receive your free next release? (Circle one)
5╨╝" Floppy 3╨╗" Floppy UUENCODED Email FTP from ftp-os2.cdrom.com
If you circled UUENCODED Email or FTP, be sure to show an email address above
to allow me to deliver the new version or notify you by email that a new
version is available.
Your signature below acknowledges the following:
USERS OF PMMPEG MUST ACCEPT THIS DISCLAIMER OF WARRANTY
PMMPEG is supplied 'as is'. The author disclaims all warranties, expressed or
implied, including, without limitation, the warranties of merchantability and
of fitness for any purpose. The author assumes no liability for damages,
direct or consequential, which may result from the use of PMMPEG. In any case
the maximum liability of the seller will be limited exclusively to product
replacement or refund of the purchase price.
Your signature ______________________________________________
Thank you for registering PMMPEG, Mike Brown.
ΓòÉΓòÉΓòÉ 21. Credits ΓòÉΓòÉΓòÉ
Thanks to the following people that used previous PMMPEG releases and sent in
valuable suggestions and bug reports!
o John Webb
o Charles Buck
o Dave Conway-Jones
o Dzung T. Hoang
o Chris Peck
o Scott Harper
o Kevin Lowey
o Fredrik Kvamme
o Wey J Ho
o Guy McArthur
o Que Alexander
o Alann Lopes
o Ender Wiggin
o Chris Herborth
o Mike W. Dross
o Makoto Nagata
o John-Marc Chandonia
o Morris Kwok
o Rainer Falkner
o John VanHoozer
o Les Chan
o Greg Spath
o Murray Penney
o Ernst-Walter Joehnk
o Keith Brafford
ΓòÉΓòÉΓòÉ 21.1. Saving Individual Frames ΓòÉΓòÉΓòÉ
This feature allows you to save the cuurently displayed frame to the Clipboard
or as an OS/2 Bitmap file These toolbar buttons are disabled during playback.
ΓòÉΓòÉΓòÉ 21.2. Clipboard Button ΓòÉΓòÉΓòÉ
This button allows you to save the curently displayed frame into the clipboard.
This allows other OS/2 (and smart Windows) applications to copy the bitmap out
of the clipboard for later use. Such apps might allow you to touch up the
image or add text to it, then save to any one of many image file formats.
o If there is no movie loaded, the button will be in this grayed out state:
o If there is a movie loaded and it's not currently playing, the button will be
in this enabled state:
o If there is a movie loaded and it is currently playing, the button will be in
this grayed out state:
ΓòÉΓòÉΓòÉ 21.3. File Button ΓòÉΓòÉΓòÉ
This button allows you to save the curently displayed frame as a 256 color
non-RLE OS/2 bitmap file. It will attempt to generate a unique filename based
on the movie filename and the current frame number. If you're saving the file
to a FAT formatted partition, the initial filename may have too many
characters. Simply shorten the first part of the bitmap filename so it fits
the 8.3 naming convention. Subsequent attempts to save the bitmap to a file
will use the altered name, replacing the frame number with the new frame
number.
o If there is no movie loaded, the button will be in this grayed out state:
o If there is a movie loaded and it's not currently playing, the button will be
in this enabled state:
o If there is a movie loaded and it is currently playing, the button will be in
this grayed out state:
ΓòÉΓòÉΓòÉ 22. 256 Colors ΓòÉΓòÉΓòÉ
The dithering engine in PMMPEG requires the hardware be configured to display
at least 256 colors or truly awful images are produced. If less than 256 color
capability is detected at startup, a message will be displayed to that effect
and the program will exit.
ΓòÉΓòÉΓòÉ 23. Slideshow ΓòÉΓòÉΓòÉ
This feature allows you to select multiple files using:
o The File Dialog
You can select multiple files using the File Dialog and they will be played
in the order they are shown in the list, not in the order that they were
clicked on.
o Drag/drop multiple files from somewhere on the desktop
You can drag and drop multiple files from anywhere on the desktop. The files
will be played in an indeterminate order as the container that you're
dragging from will generate the list of files which will not necessarily
correspond to the manner in which you selected the files.
o Filenames on the command line.
You can specify multiple filenames on the command line when you launch
PMMPEG.
PMMPEG will then play each movie, one after the other, and optionally loop back
to the front of the list and play again if the Loop mode is set.
If a serious decoding error occurs, the slideshow will halt. You must click on
the Play button to continue playing. It's not reccommended that MPEG files
with known encoding problems be selected in a slideshow as it will halt
playback each time the decoding error occurs.